package com.jeanbart.util;

import lombok.SneakyThrows;

import java.io.File;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
 *
 *
 * ScheduledExecutorService是从Java SE5的java.util.concurrent里，做为并发工具类被引进的，这是最理想的定时任务实现方式。
 * 相比于上两个方法，它有以下好处：
 * 1>相比于Timer的单线程，它是通过线程池的方式来执行任务的
 * 2>可以很灵活的去设定第一次执行任务delay时间
 * 3>提供了良好的约定，以便设定执行的时间间隔
 *
 * 下面是实现代码，我们通过ScheduledExecutorService#scheduleAtFixedRate展示这个例子，通过代码里参数的控制，首次执行加了delay时间。
 *
 *
 * @author GT
 *
 */
public class WowsSes {
    public static long lastTime = 0;
    public void ScanReplayFile(boolean serciceState) {
        AgetB getInfo = new AgetB();
        Runnable runnable = new Runnable() {
            @SneakyThrows
            public void run() {
                File file = new File(getInfo.getPath());
                if(file.exists()&&file.lastModified()!=lastTime){
                    lastTime = file.lastModified();
                    new ReadReplyFile().startRead(serciceState);
                }
            }
        };
        ScheduledExecutorService service = Executors
                .newSingleThreadScheduledExecutor();
        // 10秒扫描一次有没有replay文件，降低体感查询时间
        service.scheduleAtFixedRate(runnable, 2, 10, TimeUnit.SECONDS);
    }
}
